package top.easycode.app.constants;

import java.util.EnumSet;

/**
 * 响应码列表
 *
 * @author david.feng
 * @creation 2014-6-25 下午9:18:44
 */
public enum RespCode {

    /**
     * 0000 成功
     */
    E_0000("0000000", "成功"),

    E_1000("1000","session已过期请重新发起登录"),


    /**
     * 参数不合法
     */
    E_0003("0003", "输入参数不合法"),
    E_0004("0004","http请求失败"),

    /**
     * 报文为空，非法的请求!
     */
    E_1002("1002", "报文为空，非法的请求!"),

    /**
     * 解密后的报文为空
     */
    E_1003("1003", "无效的请求"),

    /**
     * 缓存系统异常
     */
    E_1005("1005", "系统异常"),

    /**
     * 操作不规范，请重新设置登陆密码和支付密码
     */
    E_1007("1007", "操作不规范，请重新设置登陆密码和支付密码"),

    /**
     * RPC异常 rpc服务无法调用
     */
    E_1009("1009", "系统正在维护"),

    /**
     * 报文格式有误
     */
    E_1010("1010", "报文格式有误"),

    /**
     * token缓存存取异常
     */
    E_1011("1011", "token缓存存取异常"),

    /**
     * 生成token出错
     */
    E_1012("1012", "生成token出错"),

    /**
     * 键盘密码加密有误
     */
    E_1013("1013", "密码AES解密有误"),
    E_1014("1014", "登录超时请重新登录！"),
    
    E_1015("1015","系统暂无您的商户信息，请联系客服！"),
    E_1022("1022","该账号已注册可以直接进行登录"),
    E_1023("1023","已存在该店员，不可重复添加！"),
    
    E_1017("1017","账号未注册"),
    E_1018("1018","登录密码错误"),
    
    E_1019("1019","该账号已注册过支付平台账号！"),

    /**
     * 交易失效，请重新扫码
     */
    E_1020("1020", "交易失效，请重新扫码"),

    E_1024("1024","用户不存在"),
    E_1025("1025","注册失败，系统执行异常"),
    E_1026("1026","注册失败，登录密码于确认密码不一致"),
    E_1027("1027","账号已注册"),


    Q_0001("0001", "参数不能为空"),

    /**
     * 业务系统错误
     */
    E_9998("9998", "业务系统错误"),
    E_0002("0002","时间转换异常"),

    /**
     * 此卡已绑定
     */
    E_2006("2006", "此卡已绑定"),

    /**
     * 2016 不支持该银行
     */
    E_2016("2016", "不支持该银行"),;


    private String name;

    private String code;

    public String getCode() {
        return code;
    }

    public String getName() {

        return name;
    }

    private RespCode(String code, String name) {
        if (!"0000000".equals(code)) {
            code = "504" + code;
        }
        this.name = name;
        this.code = code;
    }

    @Override
    public String toString() {
        return this.code + "_" + this.name;
    }

    public static void main(String[] args) {
        EnumSet<RespCode> eNums = EnumSet.allOf(RespCode.class);
        for(RespCode r : eNums){
            System.out.println(r.getCode() + "" + r.getName());
        }
    }
}
